package com.ia.aistream.controller.operating;

import com.ia.aistream.common.core.domain.AjaxResult;
import com.ia.aistream.model.operating.dto.visio.VisioDto;
import com.ia.aistream.model.operating.dto.visio.VueVisioDto;
import com.ia.aistream.model.operating.dto.vue.DocResult;
import com.ia.aistream.service.operating.IDocDocumentService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;

/**
 * 查询整个文档数据
 * @author XiaoYu
 */
@Controller
@RequestMapping("/doc/document")
public class DocDocuemtController {

    @Autowired
    private IDocDocumentService docDocumentService;

    /**
     * 获取某个文档的所有内容
     * @param id 文档对象的id
     * @return
     */
    @PostMapping("/allData")
    @ResponseBody
    public AjaxResult list(Long id, Integer tableSize)
    {
        DocResult docResult = docDocumentService.getDocResultService(id, tableSize);
        return AjaxResult.success(docResult);
    }

    /***
     * 实现公式数据的修改
     * @param flag 是那种类型中的数据：0、正文内容 1、正文表格 3、附录段落 2、附录表格
     * @param pid  修改数据的id
     * @param data 修改后的公式数据
     * @param index TextInfoList中的第几个元素 下标从0开始
     * @return
     */
    @PostMapping("/formula")
    @ResponseBody
    @CrossOrigin
    public AjaxResult saveForMula(int flag, String pid, String data, int index) throws Exception{

        int i = docDocumentService.saveFormulaService(flag, pid, data, index);
        return AjaxResult.success(i);
    }

    /***
     * 实现Visio文件的上传处理
     * @param file
     * @param flag 是那种类型中的数据：0、正文内容 1、正文表格 3、附录段落 2、附录表格
     * @param pid  修改数据的id
     * @param index  TextInfoList中的第几个元素 下标从0开始
     * @return
     * @throws Exception
     */
    @ResponseBody
    @RequestMapping("/upload/visio")
    public AjaxResult uploadVisio(MultipartFile file, int flag, String pid, int index) throws Exception{
        VueVisioDto s = docDocumentService.uploadVisioService(file, flag, pid, index);

        return AjaxResult.success(s);
    }

}
